/*************************************************************************
	> File Name: acqdata.h
	> Author: xuwenlong
	> Mail: myxuan475@126.com 
	> Created Time: 2018年03月13日 星期二 15时14分54秒
 ************************************************************************/
#ifndef __ACQITEM_H__
#define __ACQITEM_H__

#include <stdio.h>
#include <defines.h>
#include <time.h>
#include <json/json.h>
#include "data.h"

typedef union{
    S8   s8;
    U8   u8;
    S16  s16;
    U16  u16;
    S32  s32;
    U32  u32;
    S64  s64;
    U64  u64;
    F32  f32;
    F64  f64;
}Udata;

class AcqItem
{
public:
    AcqItem();
    AcqItem(const OpValue& data_);

    AcqItem& operator=(const OpValue& data_);

    void SetId(U16 id);
    void SetName(const char *name_);
    void SetName(const std::string &name_);

    const char *GetName() const;
    U16  GetId() const;
    OpValue *Value(OpValue *bf);

    Json::Value ToJson();

public:
    char        name[64];
    U16         itemid;//当为时间时，表示flag|长度,其他itemId

    OpValue     data;
};

#endif //__ACQITEM_H__
